/*
 * @Description: UdpServer 服务器
 * 
 * @Author: rendc
 * 
 * @Date: 2025-03-19 09:07:15
 * 
 * @LastEditors: rendc
 * 
 * @LastEditTime: 2025-03-19 09:42:03
 */

import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class UdpServer {
  // 搭建一个UDP通信协议的服务器
  public static void main(String[] args) {
    // 声明一个数组 准备接收数据
    byte[] buf = new byte[1024];
    // 定义服务器启动的端口
    int port = 9999;
    // 声明接收数据的对象 udpServerSocket
    DatagramSocket socket = null;
    // 声明封装数据的对象
    DatagramPacket packet = null;
    try {
      // 创建socket，并指定端口号
      socket = new DatagramSocket(port);
      System.out.println("服务器：启动成功");
      // 接收数据存放到buf中，从buf的0位置开始，放满buf
      packet = new DatagramPacket(buf, 0, buf.length);
      System.out.println("服务器：等待接收数据");
      // 等待接收数据
      // receive 会阻塞程序运行 等待客户端发送数据
      // 得到的数据会存到buf中
      socket.receive(packet);
      // 输出得到的数据 数据长度 packet.getLength()
      System.out.println("服务器：接收的数据" + new String(buf, 0, packet.getLength()));
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      // 关闭资源
      if (socket != null) {
        socket.close();
      }
    }
  }

}